package com.graduation.springbootinit.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.springbootinit.model.entity.CulturePart.CulturePartDiscussion;

/**
 * 文化讨论区服务
 */
public interface CulturePartDiscussionService extends IService<CulturePartDiscussion> {

    /**
     * 创建讨论
     *
     * @param discussion 讨论信息
     * @param userId 用户id
     * @return 讨论id
     */
    long createDiscussion(CulturePartDiscussion discussion, long userId);

    /**
     * 删除讨论
     *
     * @param id 讨论id
     * @param userId 用户id
     * @return 是否删除成功
     */
    boolean deleteDiscussion(long id, long userId);

    /**
     * 更新讨论
     *
     * @param discussion 讨论信息
     * @param userId 用户id
     * @return 是否更新成功
     */
    boolean updateDiscussion(CulturePartDiscussion discussion, long userId);

    /**
     * 根据id获取讨论
     *
     * @param id 讨论id
     * @return 讨论信息
     */
    CulturePartDiscussion getDiscussionById(long id);

    /**
     * 增加讨论的浏览量
     *
     * @param id 讨论id
     */
    void incrementViewCount(long id);

    /**
     * 增加讨论的评论数
     *
     * @param id 讨论id
     */
    void incrementCommentCount(long id);

    /**
     * 分页查询讨论列表
     *
     * @param page 分页参数
     * @param queryWrapper 查询条件
     * @return 分页结果
     */
    Page<CulturePartDiscussion> page(Page<CulturePartDiscussion> page, QueryWrapper<CulturePartDiscussion> queryWrapper);
}